The following section provides an example of possible workflow. It is important to note that these are indeed examples of the software’s capabilities and are not intended to be used as scientific advice in a spatial conservation planning process. It is the user’s responsibility to ensure that all analysis decisions are valid.
library(sf)
library(leaflet)
library(tmap)
library(tidyverse)
library(DT)
# set default projection for leaflet
proj <- "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"
Download the example project folder. This folder contains the Marxan Connect Project file, the input data, and the output data from this example. Feel free to follow along using Marxan Connect by loading tutorial.MarCon.
Before adding connectivity to the mix, let’s have a look at the ‘traditional’ Marxan files. The files include reef planning units that cover the Great Barrier Reef and we’ve identified a few bioregion types for which we’ve set conservation targets.
spec.datspec <- read.csv("tutorial/CSM_demographic/input/spec.dat")
datatable(spec,rownames = FALSE, options = list(searching = FALSE))
puvspr.datpuvspr <- read.csv("tutorial/CSM_demographic/input/puvspr2.dat")
datatable(puvspr,rownames = FALSE, options = list(searching = FALSE))
pu.datpu <- read.csv("tutorial/CSM_demographic/input/pu.dat")
datatable(pu,rownames = FALSE, options = list(searching = FALSE))
puvspr_wide <- puvspr %>%
left_join(select(spec,"id","name"),
by=c("species"="id")) %>%
select(-species) %>%
spread(key="name",value="amount")
# planning units with output
output <- read.csv("tutorial/CSM_demographic/output/pu_no_connect.csv") %>%
mutate(geometry=st_as_sfc(geometry,"+proj=longlat +datum=WGS84"),
best_solution = as.logical(best_solution)) %>%
st_as_sf() %>%
left_join(puvspr_wide,by=c("pu_id"="pu"))
map <- leaflet(output) %>%
addTiles()
groups <- names(select(output,-best_solution,-select_freq))[c(-1,-2,-length(names(output)))]
for(i in groups){
z <- unlist(data.frame(output)[i])
if(is.numeric(z)){
pal <- colorBin("YlOrRd", domain = z)
}else{
pal <- colorFactor("YlOrRd", domain = z)
}
map = map %>%
addPolygons(fillColor = ~pal(z),
fillOpacity = 0.6,
weight=0.5,
color="white",
group=i,
label = as.character(z)) %>%
addLegend(pal = pal,
values = z,
title = i,
group = i,
position="bottomleft")
}
map <- map %>%
addLayersControl(overlayGroups = groups,
options = layersControlOptions(collapsed = FALSE))
for(i in groups){
map <- map %>% hideGroup(i)
}
map %>%
showGroup("BIORE_102")